package com.sprouting.ops.annotations.invoke;


import com.sprouting.ops.annotations.service.CheckXssValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * Xss检查注解，校验字段中是否包含xss攻击代码，包含则触发错误信息
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2023/5/4 17:12
 */
@Retention(RUNTIME)
@Documented
@Target({METHOD, FIELD, ANNOTATION_TYPE})
@Constraint(validatedBy = CheckXssValidator.class)
public @interface CheckXss {

    /**
     * 校验不通过的提示信息
     */
    String message() default "包含非法的XSS攻击代码";

    /**
     * 分组，有时候只想让该注解在请求或修改的时候触发成功
     * 对应 AddGroup 和 UpdGroup 接口
     */
    Class<?>[] groups() default { };

    Class<? extends Payload>[] payload() default { };
}
